package model;


import persistence.MaterialMapper;

public class Material {	
	private long materialId;
	
	private String codigo;
	private String nombre;
	private int cantidadStock;
	private int puntoDePedido;
	private float costo;
	private Proveedor proveedor;
	
	/* estos dos campos se usan para la vista de creacion de prendas */
	private boolean isSelected;
	private int cantidad;
	
	public Material(String codigo, String nombre, int cantidadStock, int puntoDePedido, Proveedor proveedor, float costo) {
		this.codigo = codigo;
		this.nombre = nombre;
		this.cantidadStock = cantidadStock;
		this.puntoDePedido = puntoDePedido;
		this.proveedor = proveedor;
		this.costo = costo;
	}
	
	public boolean guardar() {
		return MaterialMapper.getInstance().insertar(this);
	}
	
	public boolean modificar() {
		return MaterialMapper.getInstance().modificar(this);
	}
	
	public boolean eliminar() {
		return MaterialMapper.getInstance().eliminar(this);
	}
	
	public boolean necesitaReponer(){
		return (this.cantidadStock < puntoDePedido);
	}

	public long getMaterialId() {
		return materialId;
	}
	
	public void setMaterialId(long materialId) {
		this.materialId = materialId;
	}
	
	public String getCodigo() {
		return codigo;
	}

	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public int getCantidadStock() {
		return cantidadStock;
	}

	public void setCantidadStock(int cantidadStock) {
		this.cantidadStock = cantidadStock;
	}

	public int getPuntoDePedido() {
		return puntoDePedido;
	}

	public void setPuntoDePedido(int puntoDePedido) {
		this.puntoDePedido = puntoDePedido;
	}

	public float getCosto() {
		return costo;
	}

	public void setCosto(float costo) {
		this.costo = costo;
	}

	public Proveedor getProveedor() {
		return proveedor;
	}
	
	public void setProveedor(Proveedor proveedor) {
		this.proveedor = proveedor;
	}
	
	public int getCantidad() {
		return cantidad;
	}
	
	public void setCantidad(int cantidad) {
		this.cantidad = cantidad;
	}
	
	public boolean isSelected() {
		return isSelected;
	}
	
	public void setSelected(boolean isSelected) {
		this.isSelected = isSelected;
	}
	
	public String toString() {
		return "Material: codigo: "+codigo+" nombre: "+nombre+" stock: "+cantidadStock+" punto de pedido: "+puntoDePedido+" costo: "+costo;
	}

	public boolean hasCodigo(String codigo) {
		return this.codigo.equals(codigo);
	}

	public int getCantidadAReponer() {
		return (puntoDePedido*2)-cantidadStock;
	}
}